package com.wiscamp.ninechapters.problems.domain.repositories;

import com.wiscamp.ninechapters.problems.domain.models.collections.CollectionPart;
import com.wiscamp.ninechapters.problems.domain.models.collections.CollectionSection;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;

import java.util.Collection;

public interface CollectionPartRepository {

    // region collection part
    CollectionPart getCollectionPart(@NotNull long partId);

    Collection<CollectionPart> getCollectionParts(@NotNull long collectionId);

    CollectionPart saveCollectionPart(@NotNull CollectionPart part);

    boolean deleteCollectionPart(@Min(0) long partId);
    // endregion


    // region collection section
    CollectionSection getCollectionSection(@Min(0) long sectionId);

    Collection<CollectionSection> getCollectionSections(@Min(0) long partId);

    CollectionSection saveCollectionSection(@NotNull CollectionSection section);

    boolean deleteCollectionSection(@Min(0) long sectionId);

    // endregion
}
